1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.google.common.util.concurrent;
18
19 import com.google.common.collect.ForwardingObject;
20
21 import junit.framework.TestCase;
22
23
24
25
26
27
28 public class ForwardingObjectTesterTest extends TestCase {
29
30 public void testFailsToForward() {
31 try {
32 ForwardingObjectTester.testForwardingObject(FailToForward.class);
33 } catch (AssertionError expected) {
34 return;
35 }
36 fail("Should have thrown");
37 }
38
39 public void testSuccessfulForwarding() {
40 ForwardingObjectTester.testForwardingObject(ForwardToDelegate.class);
41 }
42
43 private static abstract class FailToForward extends ForwardingObject implements Runnable {
44 @Override public void run() {}
45 }
46
47 private static abstract class ForwardToDelegate extends ForwardingObject implements Runnable {
48 @Override public void run() {
49 delegate().run();
50 }
51 @Override protected abstract Runnable delegate();
52 }
53 }